package com.vhly.ddxdecompiler.dexreader.file.dalv.code.reader;

import com.vhly.ddxdecompiler.dexreader.file.dalv.code.DalvInsn;
import com.vhly.ddxdecompiler.dexreader.io.DexInputStream;

import java.io.IOException;

public final class Form20t extends InsnReader {

    public static final InsnReader THE_ONE = new Form20t();

    private Form20t() {
    }

    public int read(DalvInsn insn, DexInputStream din) throws IOException {
        short c1 = din.readShort();
        insn.addRegister(c1);
        return 1;
    }

    public void prepair(DalvInsn dalvInsn, int reg) {
    }

    @Override
    public boolean hasRegister() {
        return false;
    }

//    public String insnArgString(DalvInsn insn) {
//        return branchString(insn);
//    }
//
//    public String insnCommentString(DalvInsn insn, boolean noteIndices) {
//        return branchComment(insn);
//    }
//
//    public int codeSize() {
//        return 2;
//    }
//
//    public boolean isCompatible(DalvInsn insn) {
//        if (!(insn instanceof TargetInsn) || insn.getRegisters().size() != 0) {
//            return false;
//        } else {
//            TargetInsn ti = (TargetInsn) insn;
//            return ti.hasTargetOffset() ? branchFits(ti) : true;
//        }
//    }
//
//    public boolean branchFits(TargetInsn insn) {
//        int offset = insn.getTargetOffset();
//        return offset != 0 && signedFitsInShort(offset);
//    }
//
//    public InsnFormat nextUp() {
//        return Form30t.THE_ONE;
//    }
//
//    public void writeTo(AnnotatedOutput out, DalvInsn insn) {
//        int offset = ((TargetInsn) insn).getTargetOffset();
//        write(out, opcodeUnit(insn, 0), (short) offset);
//    }

}